home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
051-060
/
amok55
/
menu2asm
/
menu2asm.dok
< prev
next >
Wrap
Text File
|
1993-11-04
|
4KB
|
86 lines
======================================================================
Dokumentation zum Modul Menu2Asm 04-Jun-91 Jürgen Zimmermann
Autor: Jürgen Zimmermann, Ringstr. 6, D-6719 Altleiningen
======================================================================
Kopierrecht
===========
Das komplette Packet (Quelltext, Dokumentation und Objektcode) ist
Public Domain Software. Es darf beliebig kopiert und verbreitet werden
solange...
* mein Name und dieser Kopierrechtshinweis erhalten bleiben,
* die Vollständigkeit des ganzen Packets gewährleistet ist, und
* mit dem Vertrieb dieser Software kein Gewinn erwirtschaftet wird.
Verbesserungsvorschläge sind stets willkommen. Falls Ihr Veränderungen
am Programm vornehmt, dokumentiert diese bitte gut verständlich.
Es würde mich freuen, wenn Ihr mich über größere Veränderungen in
Kenntnis setzen würden. Weiterhin bitte ich Euch, mir einen ausführlichen
Bug-Report zu schreiben, wenn irgenein Fehler auftreten sollte, damit ich
mich an die Verbesserung des Moduls machen kann.
Umfang des Packets
==================
Das komplette Packet "Menu2Asm" beinhaltet folgendes:
* Menu2Asm.dok Diese Dokumentation
* Menu2Asm.mod Der Quelltexte des Moduls
* Menu2Asm.def Die Definition des Moduls
* -.obj + -.sym Die Objekt- bzw. Symboldatei des Moduls
Zu "Menu2Asm"
====================
Das Modul "Menu2Asm" ermöglicht es, mit dem neuen Modula-II-Compiler
M2Amiga V4.0d fertig initialisierte Menüs zu erstellen, die dann in das
Endprogramm gelinkt werden, ohne daß man noch zusätzlichen Quelltext für
den Aufbau des Menüs benötigt.
Die Erstellung eines Menüs ist denkbar einfach: Nachdem man im eigenen
Programm ein Menü erzeugt hat und dieses mittels IntuitionL.SetMenuStrip an
ein Window installiert hat, ruft man die Prozedur
Menu2Asm.MakeMenu2Asm(Zeiger
auf das Window)
auf. Danach erscheint auf dem Workbenchfenster ein
neues Window (bei Workbenchstart des eigenen Programms) oder im CLI/SHELL eine
Titelzeile, in der der Name incl. Pfad der Zieldateien erfragt wird. Eine an den
Filenamen angehängte Erweiterung (z.B. ".hallo") wird vom Programm ignoriert.
Das Modul schreibt nun sowohl ein Definitions- als auch ein Implementations-
modul in das gewünschte Verzeichnis. Weiterhin wird noch eine Datei mit dem
Namen "PrgName"+"Asm.asm" erzeugt, die den A68k-kompatiblen Quelltext für das
Menü in Assembler enthält. Der Quelltext muß mit einem anderen Assembler als
dem des M2Amiga assembliert werden, da dieser keine veränderbaren Daten
unterstützt. Alles, was man jetzt noch machen muß, ist das Compilieren der
-.def bzw. -.mod-Datei sowie das Assemblieren der -.asm-Datei. Zu beachten
ist, daß die Objektdatei nach dem Assemblieren den gleichen Namen hat wie
die -.asm-Datei, jedoch mit der Erweiterung ".obj" versehen ist und sich vor
dem Linken im Verzeichnis "obj/" befindet, sofern ein solches angelegt ist,
damit der Linker sie findet.
Das Menü wird jetzt einfach so benutzt, indem man den Zeiger auf das Menü aus
dem Modul importiert und direkt an "IntuitionL.SetMenuStrip" übergibt.
Die zeit- und speicheraufwendige Initialsierung der Menüstruktur kann man
nun aus dem eigenen Programm verbannen (aber bitte nicht löschen, für zukünftige
Änderungen). Das Menü in Assembler sollte nur am Ende einer Programmierphase
stehen, da das Ändern im Modula-Quelltexte sehr viel bequemer ist (besonders
mit Hilfe von m2make!).
Für diejenigen unter Euch, die keine Mühe scheuen:
Man kann sich die beiden von Menu2Asm erzeugten Module auch schenken, indem man
einfach die Variablenzeile aus dem Definitionsmodul in das eigene Modul
integriert (auf keinen Fall die Zeile ändern!) und die beiden Module löscht
(spart den Code für das leere Implementationsmodul, ca. 80 Bytes). Dies
entspricht meiner eigentlichen Absicht, aber für Eilige habe ich die andere
Funktion integriert!
Viel Spaß noch bei eigenen Menüs
Euer
Jürgen